package com.sys.common.dao;

import java.util.List;
import java.util.Map;

import com.sys.common.util.PageInfoUtil;

/**
 * Dao的父接口
 * 
 * 接口也要用到泛型
 * @author 
 */
public interface IBaseDao<T>
{
	/**
	 * 保存一条记录
	 * @param role	保存的对象(角色);主键放到arole的id属性中
	 * @return	返回值含义:此sql语句执行对数据库影响的条数
	 */
	int save(T t);
	
	/**
	 * 更新一条记录
	 * @param role
	 * @return
	 */
	int update(T t);
	
	/**
	 * 删除一条记录
	 * @param role
	 * @return
	 */
	int delete(Map<String, Object> condMap);
	
	/**
	 * 查询一条记录
	 * 
	 * 按照id或者用户名查询,
	 * 查询的结果都是一条
	 * 
	 * @param condMap	键:名字标识,值:条件的值
	 * @return 查询结果一条记录
	 */
	T findOne(Map<String, Object> condMap);
	
	/**
	 * 查询多条记录
	 * @param pageInfoUtil 分页的工具类;如果为null,表示不分页;不为空,表示分页
	 * @param condMap	键:名字标识,值:条件的值
	 * @return	查询结果多条记录
	 */
	List<T> findCondList(Map<String, Object> condMap);
}
